package no.uio.ifi.cop.parse.formula;

import no.uio.ifi.cop.cl.Term;
import no.uio.ifi.cop.cl.Conjunction;
import no.uio.ifi.cop.cl.RHS;
import no.uio.ifi.cop.cl.Axiom;
import no.uio.ifi.cop.cl.Theory;


/**
 * Utility class for testing.
 *
 * Makes parsing a bit simpler by adding utility functions
 * which can turn Strings into whatever type they should be.
 *
 * @author bjarneh@ifi.uio.no
 */

public class SimpleParser{

    private SimpleParser(){ }

    public static Term parseTerm(String s){
        Parser.getParser().parseTestString(s);
        return Parser.getParser().parseTerm();
    }

    public static Term[] parseTerms(String[] s){

        Parser parser = Parser.getParser();
        Term[] terms = new Term[s.length];

        for(int i = 0; i < s.length; i++){
            parser.parseTestString( s[i] );
            terms[i] = parser.parseTerm();
        }

        return terms;
    }

    public static Conjunction parseConjunction(String conj){
        Parser.getParser().parseTestString(conj);
        return Parser.getParser().parseConjunction();
    }

    public static RHS parseRHS(String rhs){
        Parser.getParser().parseTestString(rhs);
        return Parser.getParser().parseRHS();
    }

    public static Axiom parseAxiom(String ax){
        Parser.getParser().parseTestString(ax);
        return Parser.getParser().parseAxiom();
    }

    public static Theory parseTheory(String th){
        Parser.getParser().parseTestString(th);
        return Parser.getParser().parseTheory();
    }
}
